package com.example.demo.mapper;

import com.example.demo.model.BookInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface BookMapper {
    @Insert("insert into book_info (book_name, author, count, price, publish, status) " +
            "values (#{bookName}, #{author}, #{count}, #{price}, #{publish}, #{status})")
    Integer insertBook(BookInfo bookInfo);

    @Select("select id, book_name, author, count, price, publish, status from book_info " +
            "where status != 0 limit #{offset}, #{limit}")
    List<BookInfo> selectBookInfoByPage(Integer offset, Integer limit);

    @Select("select count(*) from book_info where status != 0")
    Integer selectCount();

    @Select("select id, book_name, author, count, price, publish, status from book_info " +
            "where status != 0 and id = #{id}")
    BookInfo selectBookById(Integer id);
    Integer updateBookInfoById(BookInfo bookInfo);

    @Update("update book_info set status = 0 where id = #{id}")
    Integer deleteBookById(Integer id);

    Integer deleteBookInfoByIds(List<Integer> ids);
}
